﻿using System;
using System.Collections.Generic;
using System.Text;

namespace WeShare.WeiXin.Mp.Card.Entity
{
    public class CardEnumObject
    {
        public string card_id { get; set; }
        public EditableMember member_card { get; set; }
        public EditableGroupon groupon { get; set; }
        public EditableCash cash { get; set; }
        public EditableDiscount discount { get; set; }
        public EditableGift gift { get; set; }
        public EditableGeneralCoupon general_coupon { get; set; }
        public EditableMeetingTicket meeting_ticket { get; set; }
        public EditableScenicTicket scenic_ticket { get; set; }
        public EditableMovie movie_ticket { get; set; }
        public EditableBoardingPass boarding_pass { get; set; }
    }

    public class EditableGeneralCoupon : EditableInfo
    {
    }
    public class EditableGift : EditableInfo
    {
    }
    public class EditableDiscount : EditableInfo
    {
    }
    public class EditableCash : EditableInfo
    {
    }
    public class EditableMeetingTicket : EditableInfo
    {
        /// <summary>
        /// 会场导览图。
        /// </summary>
        public string map_url { get; set; }
    }
    public class EditableScenicTicket : EditableInfo
    {
        /// <summary>
        /// 景区门票的导览图URL。
        /// </summary>
        public string guide_url { get; set; }
    }
    /// <summary>
    /// 飞机票可更新字段
    /// </summary>
    public class EditableBoardingPass : EditableInfo
    {
        /// <summary>
        /// 	起飞时间。
        /// </summary>
        public int departure_time { get; set; }
        /// <summary>
        /// 降落时间
        /// </summary>
        public int landing_time { get; set; }
        /// <summary>
        /// 	登机口。如发生登机口变更，建议商家实时调用该接口变更。
        /// </summary>
        public string gate { get; set; }
        /// <summary>
        /// 登机时间，只显示“时分”不显示日期，按Unix时间戳格式填写。如发生登机时间变更，建议商家实时调用该接口变更。
        /// </summary>
        public int boarding_time { get; set; }
    }

    /// <summary>
    /// 电影票可编辑字段
    /// </summary>
    public class EditableMovie : EditableInfo
    {
        /// <summary>
        /// 电影名：复仇者联盟2。/n放映时间：2015年5月12日23:00。/n票类型：3D。
        /// </summary>
        public string detail { get; set; }
    }
    /// <summary>
    /// 会员可编辑字段
    /// </summary>
    public class EditableMember : EditableInfo
    {
        /// <summary>
        /// 积分清零规则，示例：每年12月30号积分清0。
        /// </summary>
        public string bonus_cleared { get; set; }
        /// <summary>
        /// 	积分规则，示例：每消费1元增加1积分。
        /// </summary>
        public string bonus_rules { get; set; }
        /// <summary>
        /// 储值说明
        /// </summary>
        public string balance_rules { get; set; }
        /// <summary>
        /// 特权说明.示例：XX会员可享有全场商品8折优惠
        /// </summary>
        public string prerogative { get; set; }
        public MemberInfo.CustomField custom_field1 { get; set; }
        public MemberInfo.CustomField custom_field2 { get; set; }
        public MemberInfo.CustomField custom_field3 { get; set; }
        /// <summary>
        /// 自定义会员信息类目，会员卡激活后显示。   
        /// </summary>
        public MemberInfo.CustomCell custom_cell1 { get; set; }
    }
    public class EditableGroupon : EditableInfo
    {
    }
    public abstract class EditableInfo
    {
        public EditableBaseInfo base_info { get; set; }
    }
}
